]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Arrow: compute a paint volume that accounts for the shadow
authorRui Matos <tiagomatos@gmail.com>
Wed, 22 Jun 2016 19:12:41 +0000 (21:12 +0200)
committerRui Matos <tiagomatos@gmail.com>
Thu, 23 Jun 2016 16:57:05 +0000 (18:57 +0200)
Otherwise the shadow gets clipped to the actor's allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=767954

js/ui/screenShield.js

index 982d9ba1d9a77f9552066da8e9fe2f94c3101ce1..1c1fad9544749d8218f999f0e4256baef9e14598 100644 (file)
@@ -377,6 +377,22 @@ const Arrow = new Lang.Class({
         cr.$dispose();
     },
 
+    vfunc_get_paint_volume: function(volume) {
+        if (!this.parent(volume))
+            return false;
+
+        if (!this._shadow)
+            return true;
+
+        let shadow_box = new Clutter.ActorBox();
+        this._shadow.get_box(this._drawingArea.get_allocation_box(), shadow_box);
+
+        volume.set_width(Math.max(shadow_box.x2 - shadow_box.x1, volume.get_width()));
+        volume.set_height(Math.max(shadow_box.y2 - shadow_box.y1, volume.get_height()));
+
+        return true;
+    },
+
     vfunc_style_changed: function() {
         let node = this.get_theme_node();
         this._shadow = node.get_shadow('-arrow-shadow');